Greg Detre
Tuesday, November 05, 2002
I don�t
like the fact that I have to specify which profile I�m currently interested in
� that should be reasonably easy to guess
I don�t want help necessarily to begin with anyway
can I have
two interests open at once???
is there no
way of combining the two approaches???
are they
simply intended as proof of concept or commercial applications???
don�t you
have privacy issues using an email archive???
how does
Margin Notes segment the webpages???
what�s
PBD???
why are we
reading this???
because, to at least a limited extent, JIT programming is a
context-aware problem
and because it�s something we�d really like to be able to do � it
requires considerable ingenuity on the part of the designer to make things
easier for the user in an immediate way
do you really need Turing-completeness???
kohonen net
to self-organise contexts
make the multimodal inputs as representative and various as possible
gsr, gui messages, typing, room temp, light levels, phone reception
has there been research into which (minimum) sensor-variables can pinpoint indoors vs outdoors etc.???
programming by demonstration
e.g. Your Wish Is My Command
also Alan Cypher
potter - he did the most interesting programming by example demo with macpaint
same mechanism for filling a shape with a texture does a pixel-by-pixel find-and-replace
what's programming by example???
andrea - blah blah inter-application protocols
he does it on a bit-level
if you get the hook in at the right level, you can do something special
Apple � allows you to hook in to everything
PBD e.g. Word autoformats list
Brad Garner CHI 1985
make powerful tools by putting them in the right place in the system
Windows can let you know about file access
VB??? ActiveX???
Lieberman � Tinker (programming by example)
write a Pong program by showing it the special behaviours (e.g. the ball reacts this way when it bounces off a wall)
cf JIT
relation to CA � these are contexts, in this situation you do this/that
it becomes the problem of analogy-making
when it makes a big, cross-domain/level jump, then it runs the risk of doing something wrong/unexpected
constraint languages
Juno � sticky patterns in what you�re drawing, applies too many rules, too powerful a mechanism, quickly collapses into a mess as it chains too many rules unexpectedly
negative feedback/constraint � hasn�t been worked out properly
Andrea: people are good at giving examples of good behaviour, but bad at constraints
criticising PBE � not much literature, but would be very valuable
each new situation is a criticism of the rest of it, insofar as it tells you what you don�t do
you want to criticise the generalisation, rather than add a different one
applications for PBE:
powerful dreamy idea
show the edge effects and let the computer figure out the middle
prolog � if you can prove a program exists, you�ve written it
anything where you can specify things by examples
but don�t you have to be able to fully specify it???
domains:
graphics, graphic design (newspaper layout � Mondrian, Lieberman), text editing
Paradot � Brad Myers (CMU)
general language for doing PBE called Garnet
a really talented graduate student threw himself at PBE and got nowhere, so he gave up
what can�t it do:
e.g. a word processing package � could be expressed in terms of a few PBE rules
OR vs special case
maybe you just need enough examples � but how does it differentiate between exceptions and disjunct high-level rules
cf the context-switching problem???
Ted thinks that you won�t want to program things that you can�t think of examples
but wouldn�t you want to be able to tweak the rules in human-readable form???
surely the beauty of a good application is that it can have unintended uses
Ted: not unintended mechanisms though�
Lieberman invented flood fill, dynamic garbage collection
you�re still bound by keyword matching�s deficiencies
why don�t people use them more???
trade-off between alexa and desktop real estate
too much information??? interface
attention � very private/important to us, and we don�t like having it shifted for us
I like working in parallel � they aren�t very good at that
Google vision
not to be a google interface, just a �I feel lucky� button
but that�s not what you necessarily want
but you lose the information � how many hits, examples etc.
very difficult to get feedback from the user, because the system has no way of knowing whether it�s picked the right thing � relevance vs usefulness
one of the attractions of programming over PBE � do I really trust myself to get the general case right, when I�m actually best at thinking in terms of specifics
the cyborg wearable guys
brad did some good work
it�s disturbing for someone to be typing while you�re talking to them
the cross-field-type inter-metric metric weighting is the interesting bit
he�s using profiles for different topics � but what if you want a fuzzy tangled sort of hierarchy of profiles/topics
Powerscout � requires you to explicitly specify your profile
you could have fun if it started to randomly mix contexts up for you and suggest slightly random things (like the Amazon collaborative filtering)
Tom Mitchell � scheduling package
it would do better at figuring out people�s whereabouts, right up until the end of semester, and then it�d go belly-up
if a system is going to make recommendations � should have a temperature control, so that its suggestions can be more fine-tuned or more noisy/surprising
how much do self-organisation/statistical techniques get used???
whenever you have a criticism/amendment/exception � it could be:
a new concept
a change in the old concept
a random event
a mistake
how do you know you�ve got a robust model? to make it more to fuzzy? which are dependable and which are undependable bits of knowledge?
I think the solution is transparency to the user
this kind of limits it to power-users
Napier kiosk:
rather than categorising by maps/sight-seeing/nightlife/restaurants etc.
rate by satisfaction:
time-orientated
proximity
ease of access/transport
user rating
make it look like it knows what it�s about � we�re good at asking the sort of person on the street who does know which bus to get
the information in these kiosks comes from the restaurants etc. which have paid to be listed on the kiosk � where should the information come from?
restaurant critics
restaurants
someone that pays for advertising
people on the street/people who go to restaurants
how can you make it work so that it improves itself over time?
perhaps you want to hear what people in your chosen/selective community think
self-organisation is the key
when two trusted people recommend the same thing, that really goes on the list
sometimes you want to canvas a few sources, then be a bit random in the final choice
really important: a high-rated trusted source
if the same person gives a single recommendation from two different perspectives, that almost counts as two recommendations
reputations
reputations add credibility because they have a vested interest in maintaining
also risk, everybody�s doing it
�we�re here� advertising � all you can do to sell toothpaste is to keep telling people that you�re here selling toothpaste
but that�s not enough if you�re focused elsewhere (e.g. banner ads)
I very rarely rate things online � do I trust 10m random people�s views on something???
shifting scale
you don�t want to give detailed map directions if someone�s asking about getting from London to Boston